Emmanuele Bassi [Wed, 3 Jun 2015 13:07:29 +0000 (14:07 +0100)]
window: Check if we can use CSD before enabling them
The change in
03213b9509fc1df16c66194ea168aed6c15110e9 changed the rules
as to when CSD can be enabled, but it also unconditionally enables CSD
with the implicit assumption that client-side shadows were the real
issue, and that we could work around that by drawing our own borders.
This also means that setting a titlebar for a GtkWindow will enable CSD
unconditionally.
In reality, some window managers (like Matchbox) *only* support
server-side decorations, and will ignore all hints to the contrary, to
the point of drawing decorations at random locations on top of the
window.
Since CSD are enabled unconditionally, the GTK_CSD environment variable
is also not a suitable escape hatch.
In the grand tradition of asking ourselves if we should do something
just because we can, we should split the environment checks from the
checks on what the user requested; by doing that, we can also check
when enabling client-side decorations, and ideally bail out if needed.
https://bugzilla.gnome.org/show_bug.cgi?id=750343
William Hua [Thu, 21 May 2015 16:48:27 +0000 (11:48 -0500)]
mir: keep reference on queued events
William Hua [Thu, 21 May 2015 14:41:42 +0000 (09:41 -0500)]
mir: gdk_mir_window_impl_set_surface_type
William Hua [Wed, 20 May 2015 22:24:20 +0000 (17:24 -0500)]
mir: Create the correct surface
William Hua [Wed, 20 May 2015 20:02:31 +0000 (15:02 -0500)]
mir: Remove redundant calls
William Hua [Wed, 20 May 2015 18:27:36 +0000 (13:27 -0500)]
mir: log input events properly
William Hua [Wed, 20 May 2015 15:38:16 +0000 (10:38 -0500)]
mir: Resolve warnings
William Hua [Wed, 20 May 2015 14:47:44 +0000 (09:47 -0500)]
mir: Update cursor position
William Hua [Tue, 19 May 2015 22:58:38 +0000 (17:58 -0500)]
mir: Remove child window rendering hack
Carlos Garnacho [Mon, 1 Jun 2015 13:55:20 +0000 (14:55 +0100)]
wayland: Move DnD grab breaking function into gdkdevice-wayland.c
This has little to do with GdkDragContext, and a lot to do with
the GdkDevice that triggered it, seems to make more sense in
gdkdevice-wayland.c.
Carlos Garnacho [Mon, 1 Jun 2015 13:53:11 +0000 (14:53 +0100)]
wayland: Split keyboard/button modifiers internally
On wl_keyboard.key/modifiers, we're just forgetting about currently
pressed mouse buttons. Fix this by storing button and key modifiers
separately, and put these together when creating the GdkEvents.
Carlos Garnacho [Mon, 1 Jun 2015 15:21:20 +0000 (16:21 +0100)]
textview: Update handles after flushing scroll changes
Text insertion/pasting might trigger scroll, so we'd have to wait
until the text was revalidated and the scrolling truly happened
before we can check the new handle(s) position.
Carlos Garnacho [Wed, 27 May 2015 12:22:00 +0000 (14:22 +0200)]
dnd: Remove emission of fake button release event
Nowadays (and for quite some years now) we rely on GdkEventGrabBroken
events to be received. This fake button event seems a remnant of
the early Gtk 2.x days, and is currently even inconsistent with our
event delivery model, so just remove it.
https://bugzilla.gnome.org/show_bug.cgi?id=749737
Rico Tzschichholz [Tue, 2 Jun 2015 15:12:18 +0000 (17:12 +0200)]
build: Fix make dist
Revert 2 hunks introduced by
36c65c1acabfd8fb1b5b85d7b128bfd4361b6fc3
Rico Tzschichholz [Tue, 2 Jun 2015 15:11:08 +0000 (17:11 +0200)]
configure: Require pango >= 1.37.0
Needed since
049cbc8b74aa7a6fff1627c8c65cbfd3c86dfde8
Matthias Clasen [Sun, 31 May 2015 01:31:07 +0000 (21:31 -0400)]
updateiconcache: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:30:53 +0000 (21:30 -0400)]
queryimmodules: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:30:40 +0000 (21:30 -0400)]
xembed: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:30:26 +0000 (21:30 -0400)]
widget path: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:30:11 +0000 (21:30 -0400)]
widget: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:29:48 +0000 (21:29 -0400)]
tree view: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:29:21 +0000 (21:29 -0400)]
tree model sort: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:29:03 +0000 (21:29 -0400)]
tree model filter: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:28:44 +0000 (21:28 -0400)]
tool palette: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:28:30 +0000 (21:28 -0400)]
text buffer: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:28:08 +0000 (21:28 -0400)]
print operation: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:27:57 +0000 (21:27 -0400)]
paned: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:27:45 +0000 (21:27 -0400)]
menu: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:27:24 +0000 (21:27 -0400)]
kinetic scrolling: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:27:05 +0000 (21:27 -0400)]
im context: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:26:27 +0000 (21:26 -0400)]
icon view: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:26:09 +0000 (21:26 -0400)]
icon theme: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:25:48 +0000 (21:25 -0400)]
file chooser: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:25:32 +0000 (21:25 -0400)]
entry: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:25:05 +0000 (21:25 -0400)]
dnd: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:24:48 +0000 (21:24 -0400)]
css: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:24:23 +0000 (21:24 -0400)]
combo box: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:24:03 +0000 (21:24 -0400)]
builder: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:23:39 +0000 (21:23 -0400)]
application: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:22:38 +0000 (21:22 -0400)]
accel map: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:21:37 +0000 (21:21 -0400)]
about dialog: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:21:00 +0000 (21:21 -0400)]
Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:19:13 +0000 (21:19 -0400)]
printing: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:17:45 +0000 (21:17 -0400)]
x11: Fix compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Matthias Clasen [Sun, 31 May 2015 01:15:33 +0000 (21:15 -0400)]
wayland: Avoid compiler warnings
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
Victor Ibragimov [Tue, 2 Jun 2015 05:20:50 +0000 (05:20 +0000)]
Updated Tajik translation
John Ralls [Sun, 31 May 2015 18:52:35 +0000 (11:52 -0700)]
Bug 745957 - GTK+/Quartz >= 3.14.8: Symbol not found: _gtk_drag_cancel
Implement gtk_drag_cancel, made public in
c160ba069 and
62616a71, in
gtkdnd-quartz.c.
Matthias Clasen [Sat, 30 May 2015 13:43:56 +0000 (09:43 -0400)]
GtkStack: Don't mix code and declarations
Matthias Clasen [Sat, 30 May 2015 13:36:51 +0000 (09:36 -0400)]
Trivial: Use a convenience macro
g_strstrip is less obscure than the two individual functions,
so lets use it here.
Matthias Clasen [Sat, 30 May 2015 13:21:16 +0000 (09:21 -0400)]
file chooser: Respect recent settings
When recent files are not supported in gvfs, or turned off by
settings, we should not try to load them even if the startup
mode says so. This prevents inconsistency with the places
sidebar where 'Recent' will not appear in this case.
Matthias Clasen [Sat, 30 May 2015 13:20:27 +0000 (09:20 -0400)]
placessidebar: Simplify some code
Use existing functions, instead of open-coding manipulation
of string arrays.
Benjamin Otte [Sat, 30 May 2015 03:59:55 +0000 (05:59 +0200)]
flowbox: Fix compiler warnings
Introduced in
e59e38b58120f8d998b5e204506fc552e2efd00d
Benjamin Otte [Sat, 30 May 2015 03:43:54 +0000 (05:43 +0200)]
cssnode: Fix position invalidation
The previous code was overly complicated and wrong.
Matthias Clasen [Sat, 30 May 2015 03:37:42 +0000 (23:37 -0400)]
GtkFlowBox: support positional css selectors
As in the previous commit for GtkListBox, support :first-child,
:last-child, :nth-child() and :last-nth-child() selectors here.
Christian Hergert [Sat, 30 May 2015 03:03:11 +0000 (20:03 -0700)]
listbox: add support for :first-child, :last-child and others
This applies the proper CSS child ordering semantics using GtkCssNode to
GtkListBox. You can now use :first-child, :last-child, :nth-child(), and
:last-nth-child() selectors.
For example, this allows styling row separators using CSS while ignoring
the separator on the last row.
GtkListBoxRow {
border-bottom: 1px solid @borders;
}
GtkListBoxRow:last-child {
border-bottom: none;
}
When the sort ordering of the listbox changes, we also update the CSS
node ordering.
Cédric Valmary [Fri, 29 May 2015 21:50:59 +0000 (21:50 +0000)]
Updated Occitan translation
John Ralls [Fri, 29 May 2015 20:04:07 +0000 (13:04 -0700)]
Fix DnD Introspection on Quartz Backend.
Don't exclude the -quartz.c files from introspection_files.
Timm Bäder [Sun, 24 May 2015 19:27:33 +0000 (21:27 +0200)]
GtkStack: Interpolate between size changes
Timm Bäder [Sun, 24 May 2015 19:20:48 +0000 (21:20 +0200)]
GtkStack: Remove some useless function calls
We will call gtk_widget_queue_resize anyway later when finishing the
(maybe non-running) transition, which will also cause the stack to be
repainted.
Timm Bäder [Sun, 24 May 2015 19:15:44 +0000 (21:15 +0200)]
GtkStack: Keep the last_visible_child around during transitions
We need it later.
Timm Bäder [Sun, 24 May 2015 19:12:34 +0000 (21:12 +0200)]
GtkStack: Misc indentation fixes
Timm Bäder [Sun, 24 May 2015 19:08:00 +0000 (21:08 +0200)]
GtkStack: Remove useless cast
Timm Bäder [Sun, 24 May 2015 18:58:01 +0000 (20:58 +0200)]
GtkStack: Remove useless function calls
These both just use the default values anyway.
Timm Bäder [Sun, 24 May 2015 14:55:34 +0000 (16:55 +0200)]
GtkStack: Save last visible widget size
When interpolating the stack size, we compute the current size by using
the prefered/minimum current size and the last size. We can't use the
last_visible_surface_allocation because that is not available until the
first _draw call and it doesn't include the child's margins.
Timm Bäder [Fri, 22 May 2015 13:43:44 +0000 (15:43 +0200)]
GtkStack: Remove gtk_widget_set_opacity call
The corresponding call with 0.999 opacity is gone, so we don't need to
reset the opacity anymore.
Timm Bäder [Tue, 17 Mar 2015 18:34:43 +0000 (19:34 +0100)]
gtkpopover: Update the menu's alignment
... when the popover position changes.
Chun-wei Fan [Fri, 29 May 2015 10:10:59 +0000 (18:10 +0800)]
Fix GDK MSVC Projects
We need to link to dwmapi.lib for all configs, not just the Broadway
ones, so fix the build.
Matthias Clasen [Fri, 29 May 2015 03:42:14 +0000 (23:42 -0400)]
Fix a cornercase crash
If gtk_text_layout_move_cursor_visually is called with a
count of 0, we were passing NULL to a free function that
can't handle it. Don't do that.
https://bugzilla.gnome.org/show_bug.cgi?id=750058
Benjamin Otte [Thu, 28 May 2015 15:40:55 +0000 (17:40 +0200)]
cssmatcher: Speed up common matching
first-child and last-child are the most common usages of the nth-child
machinery, so special-casing them makes sense.
Benjamin Otte [Thu, 28 May 2015 15:12:57 +0000 (17:12 +0200)]
cssmatcher: Rewrite nth-child matcher
Instead of trying to be smart, be stupid but correct.
Fixes nth-child reftest.
Benjamin Otte [Thu, 28 May 2015 15:06:53 +0000 (17:06 +0200)]
cssmatcher: Simplify code
Instead of copy/paste, pass the only difference as an argument
The code still doesn't work right, but at least it's easier to fix now.
Benjamin Otte [Thu, 28 May 2015 14:54:03 +0000 (16:54 +0200)]
gtk: Add deprecation guards for newest pango deprecations
Benjamin Otte [Thu, 28 May 2015 14:53:53 +0000 (16:53 +0200)]
testsuite: Add deprecation guards
Daniel Mustieles [Thu, 28 May 2015 06:42:39 +0000 (06:42 +0000)]
Updated Spanish translation
Matthias Clasen [Wed, 27 May 2015 21:19:56 +0000 (17:19 -0400)]
3.17.3
Daniel Mustieles [Wed, 27 May 2015 15:23:53 +0000 (15:23 +0000)]
Updated Spanish translation
Matthias Clasen [Tue, 26 May 2015 17:14:01 +0000 (13:14 -0400)]
3.17.2
Matthias Clasen [Tue, 26 May 2015 18:57:49 +0000 (14:57 -0400)]
Dist the gtk-builder-tool test script
Emmanuele Bassi [Tue, 19 May 2015 15:14:49 +0000 (16:14 +0100)]
examples: Clean up the standalone Makefiles
Do not hardcode GCC as the compiler; use $(shell) expansion instead of
backticks; split the built source into its own variable.
Carlos Garnacho [Thu, 21 May 2015 09:34:58 +0000 (11:34 +0200)]
entry: Set up text drag icon within drag_begin()
the drag_begin() vmethod is meant for this, and the internal DnD code
will set up a drag icon if ::drag_begin didn't do so, which means
we are first getting a "default" icon, and then replacing it with the
text surface.
This is completely harmless in X11, but causes issues on wayland as
the DnD icon window is expected to remain unchanged during DnD there.
https://bugzilla.gnome.org/show_bug.cgi?id=748763
Carlos Garnacho [Tue, 26 May 2015 14:26:59 +0000 (16:26 +0200)]
notebook: Fix assert in ::drag-motion
The drag destination might be empty, we shouldn't be checking whether
it contains pages at all. Instead, check the source notebook, which
ought to have a selected page if you're dragging something from there.
https://bugzilla.gnome.org/show_bug.cgi?id=749893
Christian Kirbach [Mon, 25 May 2015 11:26:25 +0000 (11:26 +0000)]
Updated German translation
Cosimo Cecchi [Tue, 19 May 2015 00:26:25 +0000 (17:26 -0700)]
Use built-in gtk-update-icon-cache
To generate the icon cache files.
We want to avoid a dependency loop if possible; additionally, on some
Debian-based systems gtk-update-icon-cache maps to the GTK2 version of
the utility and the GTK3 version is renamed to
gtk-update-icon-cache-3.0.
To avoid a build dependency on GTK2, use the binary that we just built
in-tree.
https://bugzilla.gnome.org/show_bug.cgi?id=749593
Cosimo Cecchi [Thu, 14 May 2015 18:32:10 +0000 (11:32 -0700)]
parse-sass: don't hardcode bash path
It's /bin/bash on some systems; just use /bin/sh instead.
https://bugzilla.gnome.org/show_bug.cgi?id=749593
Cosimo Cecchi [Tue, 19 May 2015 17:25:00 +0000 (10:25 -0700)]
tests: wait for draw before fetching tree view style
On some slower machines (e.g. an ARM OBS builder), this test is failing
with a race condition where we're trying to fetch the style before it's
applied.
https://bugzilla.gnome.org/show_bug.cgi?id=749593
Cosimo Cecchi [Sun, 24 May 2015 19:06:42 +0000 (12:06 -0700)]
scrolledwindow: fix copy/paste typo
fc2830394895f236352bea2024dda0e962dd2c53 refactored code into the
get_scroll_unit() function but introduced a copy/paste typo.
Cosimo Cecchi [Sat, 23 May 2015 23:14:39 +0000 (16:14 -0700)]
placessidebar: escape tooltip text before setting it
gtk_tree_view_set_tooltip_column() specifies that markup in the text
should be escaped.
This fixes critical warnings when hovering over items in the sidebar for
bookmarks that have markup characters in their names.
https://bugzilla.gnome.org/show_bug.cgi?id=719683
Carlos Garnacho [Sat, 23 May 2015 13:57:41 +0000 (15:57 +0200)]
scrolledwindow: Trigger builtin kinetic deceleration on libinput devices
The libinput driver will send a 0/0 scroll event on touchpads and other
devices where it knows scrolling stopped for sure. Use these events to
trigger kinetic scrolling from there.
The mechanism is similar to GtkGestureSwipe, we keep a backlog of the
latest dx/dy till a previous point in time, and calculate the final
velocities from there, with the difference we're dealing with scroll
units, and not pixel distances.
https://bugzilla.gnome.org/show_bug.cgi?id=749770
Carlos Garnacho [Sat, 23 May 2015 13:51:11 +0000 (15:51 +0200)]
scrolledwindow: Refactor scroll unit guessing into a separate function
Makes it clearer, and will be used in further places.
https://bugzilla.gnome.org/show_bug.cgi?id=749770
Jordi Mas [Sun, 24 May 2015 12:16:58 +0000 (14:16 +0200)]
Fixes to Catalan translation
Carlos Garnacho [Fri, 22 May 2015 18:52:17 +0000 (20:52 +0200)]
scrolledwindow: reset more Indicator state on ::unmap
If a GtkScrolledWindow is just unmapped and promptly mapped again, the
indicators are left in a semi-visible state, so the GdkWindow isn't raised
properly above scrolledwindow content. This inconsistent state went away
the next time the indicator is hidden.
So, reset all state about indicator window visibility, animation
progress and conceil timer on ::unmap, this will be enough to make the
indicators start out hidden like on newly created scrolledwindows.
Krzesimir Nowak [Fri, 22 May 2015 12:39:53 +0000 (14:39 +0200)]
gdk: Fix a typo
Matthias Clasen [Fri, 22 May 2015 10:56:23 +0000 (06:56 -0400)]
Fix primary monitor determination with XRANDR 1.5
This was an oversight in the previous patch.
Dave Airlie [Mon, 2 Feb 2015 06:02:04 +0000 (16:02 +1000)]
gtk3: add randr 1.5 monitor support
This patch introduces support for using the newly introduced
monitor objects in the XRandR protocol. These objects are meant
to be used to denote a set of rectangles representing a logical
monitor, and are used to hide details like monitor tiling and
virtual gpu outputs.
This uses the new objects instead of crtc/outputs objects when
they are available to create the monitor lists. X server 1.18
is required on the server side for randr 1.5.
https://bugzilla.gnome.org/show_bug.cgi?id=749561
Carlos Garnacho [Thu, 21 May 2015 12:16:13 +0000 (14:16 +0200)]
iconview: Avoid usage of gdk_window_get_device_position() during DnD
Just use the last coordinates given on XdndPosition/drag_motion() in
order to trigger scrolling.
When running on Xwayland, the pointer position is unknown at this
stage on the X11 side, so the coordinates given here are bogus.
This change avoids both roundtrips and this situation.
https://bugzilla.gnome.org/show_bug.cgi?id=749679
Carlos Garnacho [Thu, 21 May 2015 11:53:43 +0000 (13:53 +0200)]
treeview: Avoid usage of gdk_window_get_device_position() during DnD
Just use the last coordinates given on XdndPosition/drag_motion() in
order to trigger scrolling.
When running on Xwayland, the pointer position is unknown at this
stage on the X11 side, so the coordinates given here are bogus.
This change avoids both roundtrips and this situation.
https://bugzilla.gnome.org/show_bug.cgi?id=749679
Carlos Garnacho [Thu, 21 May 2015 09:58:11 +0000 (11:58 +0200)]
textview: Avoid usage of gdk_window_get_device_position() during DnD
Just use the last coordinates given on XdndPosition/drag_motion() in
order to trigger scrolling.
When running on Xwayland, the pointer position is unknown at this
stage on the X11 side, so the coordinates given here are bogus.
This change avoids both roundtrips and this situation.
https://bugzilla.gnome.org/show_bug.cgi?id=749679
Chun-wei Fan [Wed, 20 May 2015 09:36:15 +0000 (17:36 +0800)]
gtk3-demo: Fix Visual Studio Builds
Add the new cursors demo to the projects, so that gtk-demo will properly
build.
Руслан Ижбулатов [Wed, 13 May 2015 07:45:40 +0000 (07:45 +0000)]
GDK: Add cursor theme support to W32 backend
Load themed cursors from the same places they are loaded on freedesktop systems,
but use W32 API functions to do so (works for .cur/.ani cursors instead of X
cursors).
Refactor the code for cursor handling. Prefer loading cursors by name.
Do not load actual cursors when loading the theme. Find the files and remember
the arguments/calls for loading them instead. Keeping HCURSOR instance in the
hashmap would result in multiple GdkCursors using the same HCURSOR. Given that
we use DestroyCursor() to off them, this would cause problems (at the very
least - DestroyCursor() would fail).
Store GdkCursor instances in a cache. Update cached cursors when theme changes.
Recognize "system" theme as a special (and default) case. When it is set,
prefer system cursors and fall back to Adwaita cursors and (as a last resort)
built-in X cursors. Otherwise prefer theme cursors and fall back to system and
X cursors.
Force GTK to use "left_ptr" cursor when no cursor is set. Using NULL makes
it use the system default "arrow", which is not the intended behaviour when
a non-system theme is selected.
Ignore cursor size setting and query the OS for the required cursor size, as
Windows (almost) does not allow setting cursors of arbitrary size.
https://bugzilla.gnome.org/show_bug.cgi?id=749287
Руслан Ижбулатов [Sun, 3 May 2015 21:29:35 +0000 (21:29 +0000)]
GDK: Use GdkCursor objects to keep track of W32 cursors, not HCURSOR
In particular this means that cursors are disposed of by the way of
g_object_unref(), not DestroyCursor (which is documented to not to be
used on certain kinds of cursors, and we can't tell which is which).
It should also alleviate any concerns about destroying cursors that
are still in use by other windows, except for cases where we would
somehow get our hands on a HCURSOR that someone else is using and we
make a GdkCursor out of it and later unref and finalize it while it
is still in use.
It also removes the need to call CopyCursor(), which makes animated
cursors into non-animated ones as a side-effect (supposed to be a bug,
but try explaining that to MS). Now cursors should be animated (if
the are set up as such in the OS).
https://bugzilla.gnome.org/show_bug.cgi?id=697477